Towards Efficient Data-flow Test Data Generation
نویسندگان
چکیده
Data-flow testing (DFT) checks the correctness of variable definitions by observing their corresponding uses. It has been empirically proved to be more effective than control-flow testing in fault detection, however, its complexities still overwhelm the testers in practice. To tackle this problem, we introduce a hybrid testing framework: (1) The core of our framework is symbolic execution, enhanced by a novel guided path search to improve testing performance; and (2) we systematically cast DFT as reachability checking in software model checking to complement SE, yielding practical DFT that combines the two techniques’ strengths. We implemented our framework on the state-of-the-art symbolic execution tool KLEE and model checking tools BLAST, CPAchecker and CBMC, and extensively evaluate it on 30 real-world subjects with collectively 22,793 def-use pairs. The enhanced SE approach not only covers more pairs, but also reduces testing time by 10∼43%. The model checking approach can effectively weed out infeasible pairs that KLEE cannot infer by 70.1∼95.8%. Finally, for all subjects, our hybrid approach can improve data-flow coverage by 28.7∼46.3%, and reduce testing time by up to 64.6% than the symbolic execution approach alone. This hybrid approach also enables the cross-checking of each component for reliable and robust testing results.
منابع مشابه
Optimizing Cost Function in Imperialist Competitive Algorithm for Path Coverage Problem in Software Testing
Search-based optimization methods have been used for software engineering activities such as software testing. In the field of software testing, search-based test data generation refers to application of meta-heuristic optimization methods to generate test data that cover the code space of a program. Automatic test data generation that can cover all the paths of software is known as a major cha...
متن کاملTowards Efficient Data-flow Test Data Generation Using KLEE
Dataflow coverage, one of the white-box testing criteria, focuses on the relations between variable definitions and their uses. Several empirical studies have proved data-flow testing is more effective than control-flow testing. However, data-flow testing still cannot find its adoption in practice, due to the lack of effective tool support. To this end, we propose a guided symbolic execution ap...
متن کاملAn Approach for Domain Reduction with Data Dependence in Mutation Testing
As a testing strategy to evaluate the completeness of test cases, mutation testing has been identified as a "faultoriented" technique for unit testing, which is mainly used to generate complete test cases. The path-oriented technique of test data generation is a highly efficient technique which implements test data generation by building and solving constraint systems. Most of path-oriented gen...
متن کاملPrecise Guidance to Dynamic Test Generation
Dynamic symbolic execution has been shown an effective technique for automated test input generation. However, its scalability is limited due to the combinatorial explosion of the path space. We propose to take advantage of data flow analysis to better perform dynamic symbolic execution in the context of generating test inputs for maximum structural coverage. In particular, we utilize the chain...
متن کاملGA Based Test Case Generation Approach for Formation of Efficient Set of Dynamic Slices
-Automated test case generation is an efficient approach for software testing. Slicing of program provides ease to testability and enhances debugging capacity. To generate the dynamic slice, slicing criterion is required in which the input data parameter is the essential component. Most of the research work focuses on deriving the input by random consideration but it simply takes a longest peri...
متن کامل